উদাহরণ সহ DataSource এর ব্যবহার

Java Technologies - স্প্রিং জেডিবিসি (Spring JDBC) DataSource এবং Spring JDBC |
76
76

Spring JDBC-তে DataSource হল ডেটাবেস সংযোগ ব্যবস্থাপনার একটি প্রধান উপাদান। এটি ডেটাবেস সংযোগের জন্য প্রয়োজনীয় তথ্য (যেমন URL, ইউজারনেম, পাসওয়ার্ড) সরবরাহ করে। Spring Framework-এ আমরা সাধারণত DriverManagerDataSource বা HikariDataSource ব্যবহার করি, তবে এটি অন্যান্য DataSource ইমপ্লিমেন্টেশনকেও সমর্থন করে।

নীচে উদাহরণসহ Spring JDBC-তে DataSource কনফিগারেশনের এবং ব্যবহারের ধাপগুলো দেখানো হয়েছে:


Maven Dependency:

প্রথমে spring-jdbc এবং ড্রাইভারের নির্ভরশীলতা যোগ করুন।

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.11</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
</dependency>

১. DataSource সেটআপ:

DriverManagerDataSource ব্যবহার করে একটি DataSource তৈরি করা যায়।

import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class DataSourceConfig {
    public DriverManagerDataSource getDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/your_database");
        dataSource.setUsername("your_username");
        dataSource.setPassword("your_password");
        return dataSource;
    }
}

২. JdbcTemplate তৈরি:

JdbcTemplate ব্যবহার করে ডেটাবেস অপারেশন করা হয়।

import org.springframework.jdbc.core.JdbcTemplate;

public class JdbcTemplateExample {
    public static void main(String[] args) {
        // DataSource Config
        DataSourceConfig config = new DataSourceConfig();
        DriverManagerDataSource dataSource = config.getDataSource();

        // JdbcTemplate
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        // Table Creation Example
        String createTableQuery = "CREATE TABLE IF NOT EXISTS users (" +
                                  "id INT AUTO_INCREMENT PRIMARY KEY, " +
                                  "name VARCHAR(50), " +
                                  "email VARCHAR(50))";
        jdbcTemplate.execute(createTableQuery);

        // Insert Query
        String insertQuery = "INSERT INTO users (name, email) VALUES (?, ?)";
        jdbcTemplate.update(insertQuery, "John Doe", "john@example.com");

        // Select Query
        String selectQuery = "SELECT name FROM users WHERE email = ?";
        String name = jdbcTemplate.queryForObject(selectQuery, new Object[]{"john@example.com"}, String.class);

        System.out.println("User Name: " + name);
    }
}

৩. RowMapper ব্যবহার:

RowMapper ব্যবহার করে ResultSet থেকে জটিল অবজেক্ট তৈরি করা সহজ।

import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;

public class UserRowMapper implements RowMapper<User> {
    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setEmail(rs.getString("email"));
        return user;
    }
}

৪. ব্যবহার উদাহরণ:

import java.util.List;

public class FetchUsersExample {
    public static void main(String[] args) {
        // DataSource Config
        DataSourceConfig config = new DataSourceConfig();
        DriverManagerDataSource dataSource = config.getDataSource();

        // JdbcTemplate
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        // Fetching All Users
        String selectAllQuery = "SELECT * FROM users";
        List<User> users = jdbcTemplate.query(selectAllQuery, new UserRowMapper());

        for (User user : users) {
            System.out.println("User ID: " + user.getId());
            System.out.println("User Name: " + user.getName());
            System.out.println("User Email: " + user.getEmail());
        }
    }
}

৫. HikariCP DataSource উদাহরণ (উন্নত পারফরম্যান্সের জন্য):

HikariCP একটি উচ্চ-কার্যক্ষমতার DataSource ইমপ্লিমেন্টেশন।

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import javax.sql.DataSource;

public class HikariDataSourceConfig {
    public DataSource getHikariDataSource() {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/your_database");
        config.setUsername("your_username");
        config.setPassword("your_password");
        config.setDriverClassName("com.mysql.cj.jdbc.Driver");
        config.setMaximumPoolSize(10); // Optional: Connection pool size
        return new HikariDataSource(config);
    }
}

Hikari DataSource ব্যবহার করে JdbcTemplate তৈরি করার পদ্ধতি একই।


আউটপুট:

উপরের উদাহরণগুলো ব্যবহার করে আপনি ডেটাবেসে ডেটা যোগ করতে, পড়তে এবং পরিচালনা করতে পারবেন।

সুবিধা:

  1. Simple Configuration: Spring JDBC-র DataSource সেটআপ সহজ।
  2. Boilerplate Code Removed: Connection তৈরি এবং বন্ধ করার দায়িত্ব JdbcTemplate স্বয়ংক্রিয়ভাবে করে।
  3. Integration Support: বড় প্রজেক্টে সহজে ব্যবহারযোগ্য।
Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion